package com.cly.file;

import com.cly.entity.File;
import com.cly.result.JsonRequest;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 文件服务接口
 *
 * @author by 春风能解释
 * <p>
 * 2024/9/12
 */
@FeignClient(value = "smart-village-file",
        path = "/file",
        contextId = "FileFeign")
public interface FileFeign {


    /**
     * 分页查询文件
     *
     * @param current 页码
     * @param size    页长
     * @param file    条件
     * @return JSON
     */
    @GetMapping
    JsonRequest<List<File>> pageFile(@RequestParam Integer current, @RequestParam Integer size, File file);

    /**
     * 文件上传并返回ID
     *
     * @param file 文件
     * @return JSON
     */
    @PostMapping("/upload")
    JsonRequest<Long> uploadFile(@RequestParam("file") MultipartFile file);

    /**
     * 上传文件并关联
     *
     * @param id   ID
     * @param file 文件
     * @return JSON
     */
    @PostMapping("/uploadRe")
    JsonRequest<Long> uploadFileRelation(@RequestParam Long id, @RequestParam("file") MultipartFile file);

    /**
     * 根据ID删除文件
     *
     * @param ids 文件ID
     * @return JSON
     */
    @DeleteMapping("/delete")
    @Operation(summary = "根据ID删除文件")
    JsonRequest<Integer> deleteFileById(@RequestBody List<Long> ids);

    /**
     * 判断是否为图片
     *
     * @param id 文件ID
     * @return JSON
     */
    @GetMapping("/isImg")
    JsonRequest<Boolean> isImage(@RequestParam Long id);

}
